const User = require("../model/user.model")
class UserService {
  /**操作数据库都是异步操作 */
  /**创建用户 */
  async createUser (user_name, password) {
    // 需要对应表的字段
    const res = await User.create({ user_name, password })
    return res.dataValues
  }
  /**查询用户信息 */
  async getUserInfo ({ id, user_name, password, is_admin }) {
    const whereOpt = {}
    // 需要对应表的字段
    id && Object.assign(whereOpt, { id })
    user_name && Object.assign(whereOpt, { user_name })
    password && Object.assign(whereOpt, { password })
    is_admin && is_admin != 0 && Object.assign(whereOpt, { is_admin })
    const res = await User.findOne({
      attributes: ['id', 'user_name', 'password', 'is_admin'],
      where: whereOpt
    })
    return res ? res.dataValues : null
  }
  /**更新用户信息 */
  async updateUserInfoById ({ id, user_name, password, is_admin }) {
    const whereOpt = { id }
    const newUser = {}
    // 需要对应表的字段
    user_name && Object.assign(newUser, { user_name })
    password && Object.assign(newUser, { password })
    is_admin && is_admin != 0 && Object.assign(newUser, { is_admin })
    const res = await User.update(newUser, {
      where: whereOpt
    })
    return res[0] > 0 ? true : false
  }
}
module.exports = new UserService()